
//1493.删除一个元素以后全为1的最长子数组
class Solution {
    public:
        int longestSubarray(vector<int>& nums) {
            //控制一个区间，保证这个区间内最多存在一个0，返回这个区间中1的个数
            //还是使用滑动窗口进行解决，当0的个数超过1的时候出窗口，否则入窗口
            int left=0,zero=0;  //用zero记录0的个数
            int ret=0,n=nums.size();
            for(int right=0;right<n;right++)
            {
                if(nums[right]==0) zero++;
                while(zero==2)
                    if(nums[left++]==0) zero--;
    
                //更新答案
                ret=max(ret,right-left); //注意：此处1的个数是right-left，因为是闭区间所以总个数+1,
                                            //但是区间中有一个是0
            }
            return ret;
        }
    };